package com.huabo.system.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.hbfk.util.JsonBean;
import com.hbfk.util.PageInfo;
import com.huabo.system.mysql.entity.FindMySql;
import com.huabo.system.mysql.entity.TblManageRightMySql;
import com.huabo.system.mysql.entity.TblOrganizationMySql;
import com.huabo.system.mysql.entity.TblStaffMySql;
import com.huabo.system.oracle.entity.Find;
import com.huabo.system.oracle.entity.TblManageRight;
import com.huabo.system.oracle.entity.TblOrganization;
import com.huabo.system.oracle.entity.TblPersonalTrain;
import com.huabo.system.oracle.entity.TblStaff;


public interface TblStaffService {

	JsonBean dealLoginSystem(String userName, String password, String loginType, String verid) throws Exception;


    boolean validateOrgExistStaff(List<TblOrganization> findChildrenByOrgid);

    boolean validateOrgExistMySqlStaff(List<TblOrganizationMySql> findChildrenByOrgid);

    TblStaff get(BigDecimal var1);

    TblStaffMySql getMySql(BigDecimal var1);

    TblStaff findByUsername(String username);

    TblStaffMySql findByMySqlUsername(String username);

    Map<String, Object> add(TblStaff user);

    Map<String, Object> addMySql(TblStaffMySql user);

    List<TblStaff> findByEmail(String email);

    List<TblStaffMySql> findByMySqlEmail(String email);

    void modify(TblStaff user);

    void modifyMySql(TblStaffMySql user);

    TblStaff findById(String id);

    TblStaffMySql findByMySqlId(String id);

    Map<String, Object> findAll(String staffId, Find find, Integer pageNumber, Integer pageSize, BigDecimal pid);

    Map<String, Object> findAllMySql(String staffId, FindMySql find, Integer pageNumber, Integer pageSize, BigDecimal pid);

    Map<String, Object> findAllPid(String staffId, Find find, Integer pageNumber, Integer pageSize, String token);

    Map<String, Object> findAllMySqlPid(String staffId, FindMySql find, Integer pageNumber, Integer pageSize, String token);

    TblStaff findByStaffid(BigDecimal staffid) throws Exception;

    TblStaffMySql findByMySqlStaffid(BigDecimal staffid);

    Map<String, Object> update(TblStaff user);

    Map<String, Object> updateMySql(TblStaffMySql user);

    Map<String, Object> findByAll(String pid, Integer pageNumber, Integer pageSize,String token,String staffId);

    Map<String, Object> findAllPageBean(Integer pageNumber, Integer pageSize,String token,String staffId);

    Map<String, Object> findUserByZbsjForQx(PageInfo<TblStaff> pageInfo);

    Map<String, Object> findUserByMySqlZbsjForQx(PageInfo<TblStaffMySql> pageInfo);

    TblStaff getExpert(BigDecimal staffid);

    TblStaffMySql getMySqlExpert(BigDecimal staffid);

    void modifyStaff(TblStaff staff);

    void modifyMySqlStaff(TblStaffMySql staff);
    
	JsonBean findUserInfoByToken(String token) throws Exception;

    TblStaff findByOragn(String cystaffid);

    TblStaffMySql findByMySqlOragn(String cystaffid);

    Map<String, Object> findAllPageBeanPid(String pid,Integer pageNumber, Integer pageSize, String token);

    void updateStaff(TblStaff staff);

    void updateMySqlStaff(TblStaffMySql staff);

    List<TblManageRight> findMansgeUserRight(String staffid);

    List<TblManageRightMySql> findMySqlMansgeUserRight(String staffid);

    List<TblStaff> findByJobid(BigDecimal jobid);

    List<TblStaffMySql> findByMySqlJobid(BigDecimal jobid);

	List<BigDecimal> findUserByRole(String string, BigDecimal orgid);


	TblStaff selectProjectGroupLeader(Integer projectId);

    TblStaffMySql selectMySqlProjectGroupLeader(Integer projectId);

	List<BigDecimal> findUserByProject(Integer projectId);


	List<BigDecimal> findTaskControlPerson(Integer projectId, BigDecimal orgid);


	JsonBean dealOaLoginSystem(String userName, String verid) throws Exception;


	JsonBean modifyUserPassWord(String token, Integer staffId, String oldPassWord, String newPassWord, String twoPassWord) throws Exception;

	JsonBean mergeStaffManageInfo(String data, String attids) throws Exception;

	JsonBean getStaffList(BigDecimal orgid,String token, Integer pageNumber, Integer pageSize,String realName) throws Exception;

	JsonBean findSjStaffDetail(String token,String staffid) throws Exception;

	JsonBean saveOrUpdateTrain(TblPersonalTrain train,String staffid,String trainattIds) throws Exception;
    
	JsonBean deleteTrain(String token,String trainid) throws Exception;

	JsonBean getStaffAttInfo(String token,String staffid) throws Exception;

	JsonBean deleStaffAttInfo(String token,String attid) throws Exception;
	
	JsonBean deleTrainAttInfo(String token,String attid) throws Exception;
	
	JsonBean getAuditorInformationList(String token,String orgid) throws Exception;

	 Map<String, Object> syncUser(Integer operaType,String data) throws Exception;
	
	 void syncPerson(String data)throws Exception;
	
    // TblStaff findByOrag(String cystaffid);


//    TblStaff getSTAFFID(BigDecimal userid);
	
}
